package client.conector;

import interfaz.InterfazRemota;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.List;

import org.w3c.dom.Document;

import beans.ClienteBean;
import beans.CondicionCompraBean;

public class BusinessDelegate {
	private InterfazRemota interfaz;
	
	public BusinessDelegate(){
	}
	public boolean conecto(){
		boolean ok = false;//AGREGADO
		try {
			
			interfaz= (InterfazRemota) Naming.lookup("//127.0.0.1/Central");
			ok=true;//AGREGADO
		} 
		catch (MalformedURLException e) { // URL MAL PUESTA
			System.out.println("URL MAL PUESTA");
			e.printStackTrace();
		} 
		catch (RemoteException e) { // ERROR EN EL METODO
			System.out.println("ERROR EN EL METODO");
			e.printStackTrace();
		} 
		catch (NotBoundException e) { // NO ENCUENTRA LA CLASE PARA HACER EL CAST
			System.out.println("NO ENCUENTRA LA CLASE PARA HACER EL CAST");
			e.printStackTrace();
		}
		return ok;//DEVOLVIA FALSE ANTES
		
	}
	public boolean ingresarCliente(ClienteBean cliente) {
		if(conecto()){
			try{
				return interfaz.ingresarCliente(cliente);
			}catch(Exception e){
				//ATRAPO LAS EXCEPCIONES que tira la interfaz si no conecta
			}
		}
		return false;
	}
	public List<ClienteBean> obtenerClientes() {
		List<ClienteBean> r=null;
		if(conecto()){
			try{
				r=interfaz.obtenerClientes();
			}catch(Exception e){
				
			}
		}
		return r;
	}
	public boolean eliminarCliente(ClienteBean cliente) {
		if(conecto()){
			try{
				return interfaz.eliminarCliente(cliente);
			}catch(Exception e){
				
			}
		}
		return false;
	}
	public List<CondicionCompraBean> obtenerCondicionCompra() {
		List<CondicionCompraBean> resultado=null;
		if(conecto()){
			try{
				resultado=interfaz.obtenerCondicionCompra();
			}catch(Exception t){
				
			}
		}
		return resultado;
	}
	public List<CondicionCompraBean> obtenerCondicionesCompra(
			ClienteBean clienteActual) {
		List<CondicionCompraBean> r=null;
		if(conecto()){
			try{
				r=interfaz.obtenerCondicionesCompra(clienteActual);
			}catch(Exception e){
				
			}
		}
		return r;
	}
	public void enviarListadoPrecios(Document listaPrecios) {
		if(conecto()){
			try{
				interfaz.enviarListadoPrecios(listaPrecios);
			}catch(Exception e){
				
			}
		}
		
	}
	public ClienteBean obtenerCliente(String cuit) {
		ClienteBean  r = null;
		if(conecto()){
			try{
				r= interfaz.obtenerCliente2(cuit);
			}catch(Exception e){
				
			}
			
		}
		return r;
	}
	public String[] obtenerRodamientos() {
		try{
			return interfaz.obtenerRodamientos();
		}catch(Exception e){
			
		}
		return null;
	}
	
	
	public Document recibirSolicitudCotizacion (Document doc){
		try{
			return interfaz.recibirSolicitudCotizacion(doc);
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}
	
	public Document recibirPedido (Object doc){
		try{
			return interfaz.recibirPedido();
		}catch(Exception e){
			e.printStackTrace();
		}
		return null;
	}
	
}
